home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / modula2 / module / biermenu.mod < prev    next >
Text File  |  1995-11-25  |  7KB  |  186 lines

  1. IMPLEMENTATION MODULE BierMenu;
  2. FROM BlRscInc IMPORT QUIT,ABOUT,LOAD,SAVE,EDIT,HELP,OPTIONEN,EXTRAS,MENUE,
  3.                DESK,DATEI,KASSE, PRINT , BESTELL, FAXRECHN, KASSESTD,
  4.                SPENDEN, RECHNUNG, BIEREN, NAMEN, DATUMAE, EKPREISE,ZIRKEL,
  5.                VKPREISE, INVENTUR, STATISTK,ABOUTDIA,SaveFileName,
  6.                LEERZEIL,SAVEWORK,LEERDIA,OKLEER,CANCLEER,ZAHLLEER;
  7. FROM Preiserfassung IMPORT EinkaufsPreise,VerkaufsPreise,GetDate,
  8.                            GetPreferences,SetPreferences;
  9.  
  10.  
  11. FROM Bestellungen IMPORT Bestellung,Abrechnung;
  12. FROM EdiereBierListe IMPORT Editiere;
  13. FROM DruckeBierListe IMPORT PrintBierliste;
  14. FROM KassenStand IMPORT SpendenErfassen,InventurMachen, BierListeSpeichern,
  15.                         BierListeLaden, AlteBierListeLaden;
  16.  
  17.  
  18. FROM SYSTEM IMPORT ADDRESS;
  19. FROM EasyDialog IMPORT DoDialog,and,GetText,SetText,IsSelected;
  20. FROM AES IMPORT FormAlert,GrafMouse,MenuTitleNormal,ResourceGetAddr,
  21.                 MenuItemEnable,ObjectChange,MenuItemCheck;
  22. FROM GEMAESbase IMPORT HourGlass,Arrow,Selected,Normal;
  23. FROM ConvertStr IMPORT StrToInt,IntToStr;
  24.  
  25. VAR NachXXordnen,LeerZeilen : INTEGER;
  26.  
  27. PROCEDURE InitLeerZeilen():INTEGER;
  28. VAR LeerZeilenAddr: ADDRESS;
  29.     AnzahlDerLeerZeilen :INTEGER;
  30.     DiaReturn :INTEGER;
  31.     LeerZeilenStr: ARRAY [0..1] OF CHAR;
  32.     OK : BOOLEAN;
  33. BEGIN
  34.     ResourceGetAddr(0,LEERDIA,LeerZeilenAddr);
  35.     GetText(ZAHLLEER,LeerZeilenAddr,LeerZeilenStr);
  36.     DiaReturn:=DoDialog(LeerZeilenAddr,0);
  37.     IF DiaReturn = CANCLEER THEN
  38.        SetText(ZAHLLEER,LeerZeilenAddr,LeerZeilenStr);
  39.     ELSE
  40.        GetText(ZAHLLEER,LeerZeilenAddr,LeerZeilenStr);
  41.        StrToInt(LeerZeilenStr,AnzahlDerLeerZeilen,OK);
  42.     END(*IF*);
  43.     IF OK THEN RETURN AnzahlDerLeerZeilen ELSE RETURN 5 END(*IF*);
  44. END  InitLeerZeilen;
  45.  
  46.  
  47. PROCEDURE  MenueEreignis(msgret:INTEGER;menueadresse:ADDRESS):BOOLEAN;
  48. VAR formret:INTEGER;
  49.     String: ARRAY [0..127] OF CHAR;
  50.     FileName: ARRAY [0..255] OF CHAR;
  51.     ENDE,OK :BOOLEAN;
  52.     AboutAddr: ADDRESS;
  53.  
  54. PROCEDURE OrdneNach;
  55. BEGIN
  56.     MenuItemCheck(menueadresse,BIEREN,0);
  57.     MenuItemCheck(menueadresse,NAMEN,0);
  58.     MenuItemCheck(menueadresse,RECHNUNG,0);
  59.     MenuItemCheck(menueadresse,msgret,1);
  60.     NachXXordnen:=msgret;
  61. END OrdneNach;
  62.  
  63.  
  64.  
  65. BEGIN
  66.  ENDE:=FALSE;
  67.  CASE msgret OF
  68.    ABOUT     : ResourceGetAddr(0,ABOUTDIA,AboutAddr);
  69.                formret:=DoDialog(AboutAddr,0);
  70.                IF formret = ZIRKEL THEN
  71.                  String :='[0][L! Teutonia München i.CC |  Richard Wagner Str. 7|    80333 München |    Tel 089/521296][  OK  ]';
  72.                  formret:=FormAlert(1,String);
  73.                END(*IF*);
  74.  
  75.  | QUIT      : String :='[3][Wollen Sie das Programm|  Verlassen ?][  OK  |ABBRUCH]';
  76.                formret:=FormAlert(1,String);
  77.                IF formret = 1 THEN
  78.                    ENDE := TRUE;
  79.                END(*IF*);    ;
  80.  | EDIT      : Editiere;(* Bierliste eingeben, neue Rechnung erstellen*)
  81.                MenuItemEnable(menueadresse,SAVE,1);
  82.                MenuItemEnable(menueadresse,PRINT,1)
  83.  
  84.  | LOAD      : (*letzte Rechnung laden um Neue zu erstellen*)
  85.                String :='[2][Möchten Sie eine alte Liste|korrigieren oder |eine neue Abrechnung machen?][Alte|Neue]';
  86.                formret:=FormAlert(2,String);
  87.                IF formret = 1 THEN
  88.                   FileName:='*.DAT';
  89.                   AlteBierListeLaden(FileName);
  90.                ELSE
  91.                   FileName:='*.DAT';
  92.                   BierListeLaden(FileName);
  93.                END(*IF*);
  94.                MenuItemEnable(menueadresse,PRINT,1);
  95.                MenuItemEnable(menueadresse,EDIT,1)
  96.  | SAVE      : (* s.o.,speichern*)
  97.                BierListeSpeichern(SaveFileName);
  98.                MenuItemEnable(menueadresse,SAVE,0)
  99.                (* Alle Listen sind gespeichert, im Speicher befinden sich
  100.                nur noch leere Listen, ein nochmaliges Abspeichern würde
  101.                das File zerstören*)
  102.  
  103.  | HELP      : String :='[0][ Hilfe| Nur zum Test!!!!! |  Christian   Ledermann| ver 0.0 vom 25.02.93 ][  OK  ]';
  104.                formret:=FormAlert(1,String);
  105.  | PRINT     : (* Ausdruck der Bierliste/der Statistik*)
  106.                 PrintBierliste(NachXXordnen,LeerZeilen);
  107.  
  108.  | BESTELL   : (*Bestellungen Beim Faxen*)
  109.                 Bestellung;
  110.  
  111.  | FAXRECHN  : (* Was kriegt der Fax an Geld?*)
  112.                Abrechnung;
  113.                MenuItemEnable(menueadresse,PRINT,1)
  114.  
  115.  | KASSESTD  : (* Was ist/müsste in der Kasse sein *)
  116.  | SPENDEN   : (* Kassenstand von Spenden Bereinigen wg. Schwundrechnung*)
  117.                 SpendenErfassen;
  118.  
  119.  | RECHNUNG, BIEREN, NAMEN: OrdneNach;(* Wie soll der Ausdruck erfolgen*)
  120.  | DATUMAE   : OK:= GetDate();(* Datum ändern*)
  121.  | EKPREISE  : EinkaufsPreise;(* EK ändern*)
  122.                MenuItemEnable(menueadresse,SAVE,1)
  123.  
  124.  | VKPREISE  : VerkaufsPreise;(* VK ändern*)
  125.                MenuItemEnable(menueadresse,SAVE,1)
  126.  
  127.  | INVENTUR  : (* Gesammterfassung des KassenBestandes und Inhalt des Kühlschrankes*)
  128.                InventurMachen;
  129.                MenuItemEnable(menueadresse,PRINT,1);
  130.                MenuItemEnable(menueadresse,SAVE,1)
  131.  
  132.  
  133.  | STATISTK  : (* Wo wurde viel Umsatz gemacht, wo ist der Schwund am größten*)
  134.  | LEERZEIL  : (* Wie viele Leerzeilen sollen am Ende der Bierliste angefügt werden?*)
  135.                LeerZeilen:=InitLeerZeilen();
  136.  | SAVEWORK  : (* Voreinstellungen sichern *)
  137.                String:='[2][ Voreinstellungen sichern][OK|Abbruch]';
  138.                formret:=FormAlert(1,String);
  139.                IF formret=1 THEN
  140.                   SetPreferences(NachXXordnen,LeerZeilen);
  141.                END(*IF*);
  142.  
  143.  
  144.  
  145.  ELSE
  146.      ENDE := FALSE;
  147.  END (*CASE*);
  148.  MenuTitleNormal(menueadresse,DATEI,1);
  149.  MenuTitleNormal(menueadresse,DESK,1);
  150.  MenuTitleNormal(menueadresse,KASSE,1);
  151.  MenuTitleNormal(menueadresse,EXTRAS,1);
  152.  MenuTitleNormal(menueadresse,OPTIONEN,1);
  153.  
  154. RETURN ENDE;
  155. END MenueEreignis;
  156.  
  157. PROCEDURE InitPreferences;
  158. VAR Ordnen,LeerZ : INTEGER;
  159.     ReadDone,OK:BOOLEAN;
  160.     Adr :ADDRESS;
  161.     Str : ARRAY [0..1] OF CHAR;
  162. BEGIN
  163.    ReadDone:=GetPreferences(Ordnen,LeerZ);
  164.    IF ReadDone THEN
  165.       ResourceGetAddr(0,LEERDIA,Adr);
  166.       IntToStr(LeerZ,0,Str,OK);
  167.       IF OK THEN
  168.          SetText(ZAHLLEER,Adr,Str);
  169.          LeerZeilen := LeerZ;
  170.       END(*IF*);
  171.       ResourceGetAddr(0,MENUE,Adr);
  172.       IF (Ordnen= RECHNUNG)OR  (Ordnen= BIEREN)OR  (Ordnen= NAMEN) THEN
  173.           NachXXordnen:=Ordnen;
  174.           MenuItemCheck(Adr,BIEREN,0);
  175.           MenuItemCheck(Adr,NAMEN,0);
  176.           MenuItemCheck(Adr,RECHNUNG,0);
  177.           MenuItemCheck(Adr,Ordnen,1);
  178.       END(*IF*);
  179.    END(*IF*);
  180. END InitPreferences;
  181.  
  182.  
  183. BEGIN
  184. NachXXordnen:=NAMEN;
  185. END BierMenu.
  186.